/**
 * FileName: DeviceService
 * Author: Wb
 * Date: 2025/9/24 9:59
 * Description:
 * History:
 */
package org.test.device.service;

import org.test.device.params.QueryDeviceParam;
import org.test.device.params.SaveDeviceParam;
import org.test.device.params.UpdateDeviceParam;
import org.test.device.utils.ResultData;
import org.test.device.vo.device.DeviceReceiveInfo;
import org.test.device.vo.device.DeviceVoList;

import java.util.List;

/**
 * 〈一句话功能简述〉<br>
 * 〈〉
 *
 * @author Wb
 * @create 2025/9/24
 * @since 1.0.0
 */
public interface DeviceService {

    List<DeviceVoList> getDeviceList(QueryDeviceParam param);

    void saveDevice(SaveDeviceParam param);

    ResultData updateDevice(String code, UpdateDeviceParam param);

    ResultData certificationDevice(String code,String clientId,String authPassword);

    ResultData updateDeviceStatus(String code,Integer status);

    ResultData deviceSendInfo(String topic, DeviceReceiveInfo messages);

    ResultData receiveExternalMessage(String topic, DeviceReceiveInfo messages);

    ResultData getDeviceMessagesByTopic(String topic);
}